#ifndef EMBRYO_INDIVIDUAL_DEVELOPMENT_H
#define EMBRYO_INDIVIDUAL_DEVELOPMENT_H

#include "../../../physics/cpm/World.h"

class Physics;
//class ShapeIdentifier;

namespace GA {

class EmbryoIndividual;

class EmbryoIndividualDevelopment {
public:
	/* ctor */
	EmbryoIndividualDevelopment(
		int worldWidth,
		int worldHeight,
		EmbryoIndividual const& individual,
		int developmentalIterations);

	/* dtor */
	~EmbryoIndividualDevelopment();

	/* run once */
	void runOnce();

	/* run all */
	void runAll();

	/* is finished ? */
	bool isFinished() const;

	/* get world */
	World const& getWorld() const;

private:
	World _world;                        /* world */
	EmbryoIndividual const& _individual; /* individual */
	int _developmentalIterations;        /* iterations */
	int _currentIterations;              /* iterations done */
	Physics* _physics;                   /* physics */
//	ShapeIdentifier* _shapeIdentifier;   /* shape identifier */
};

} // GA

#endif // EMBRYO_INDIVIDUAL_DEVELOPMENT_H

